<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>

<link href='https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color: #ffffff; --text-color: #333333; --select-text-bg-color: #B5D6FC; --select-text-font-color: auto; --monospace: "Lucida Console",Consolas,"Courier",monospace; --title-bar-height: 20px; }
.mac-os-11 { --title-bar-height: 28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5 { white-space: pre-wrap; }
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
  body.typora-export { padding-left: 0px; padding-right: 0px; }
  #write { padding-left: 20px; padding-right: 20px; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
thead, tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
svg { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
  body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
  #write { margin-top: 0px; border-color: transparent !important; padding-top: 0px !important; padding-bottom: 0px !important; }
  .typora-export * { -webkit-print-color-adjust: exact; }
  .typora-export #write { break-after: avoid; }
  .typora-export #write::after { height: 0px; }
  .is-mac table { break-inside: avoid; }
  #write > p:nth-child(1) { margin-top: 0px; }
  .typora-export-show-outline .typora-export-sidebar { display: none; }
  figure { overflow-x: visible; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
  .md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
  .md-toc-h4 .md-toc-inner { margin-left: 5em; }
  .md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
  .md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.reversefootnote { font-family: ui-monospace, sans-serif; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
.md-expand mark .md-meta { opacity: 0.3 !important; }
mark .md-meta { color: rgb(0, 0, 0); }
@media print {
  .typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-fences.md-fences-math { font-size: 1em; }
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
.md-fences-advanced:not(.md-focus) { background: inherit; }
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
.typora-export-show-outline #write { --webkit-flex: 2; flex: 2 1 0%; }
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
@media screen and (max-width: 1024px) {
  .typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
}
@media screen and (max-width: 800px) {
  .typora-export-sidebar { display: none; }
}
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; overflow-wrap: anywhere; }
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
.outline-content strong { font-weight: 400; }
.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
.outline-expander:hover::before { content: ""; }
.outline-h1 > .outline-item { padding-left: 0px; }
.outline-h2 > .outline-item { padding-left: 1em; }
.outline-h3 > .outline-item { padding-left: 2em; }
.outline-h4 > .outline-item { padding-left: 3em; }
.outline-h5 > .outline-item { padding-left: 4em; }
.outline-h6 > .outline-item { padding-left: 5em; }
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
.outline-label:hover { text-decoration: underline; }
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; }
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
.outline-children { display: none; }
.info-panel-tab-wrapper { display: none; }
.outline-item-open > .outline-children { display: block; }
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; }
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
.typora-export-collapse-outline .outline-children { display: none; }
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
.md-inline-math-container mjx-container { zoom: 0.95; }
mjx-container { break-inside: avoid; }
.md-alert.md-alert-note { border-left-color: rgb(9, 105, 218); }
.md-alert.md-alert-important { border-left-color: rgb(130, 80, 223); }
.md-alert.md-alert-warning { border-left-color: rgb(154, 103, 0); }
.md-alert.md-alert-tip { border-left-color: rgb(31, 136, 61); }
.md-alert.md-alert-caution { border-left-color: rgb(207, 34, 46); }
.md-alert { padding: 0px 1em; margin-bottom: 16px; color: inherit; border-left: 0.25em solid rgb(0, 0, 0); }
.md-alert-text-note { color: rgb(9, 105, 218); }
.md-alert-text-important { color: rgb(130, 80, 223); }
.md-alert-text-warning { color: rgb(154, 103, 0); }
.md-alert-text-tip { color: rgb(31, 136, 61); }
.md-alert-text-caution { color: rgb(207, 34, 46); }
.md-alert-text { font-size: 0.9rem; font-weight: 700; }
.md-alert-text svg { fill: currentcolor; position: relative; top: 0.125em; margin-right: 1ch; overflow: visible; }
.md-alert-text-container::after { content: attr(data-text); text-transform: capitalize; pointer-events: none; margin-right: 1ch; }


.CodeMirror { height: auto; }
.CodeMirror.cm-s-inner { background: inherit; }
.CodeMirror-scroll { overflow: auto hidden; z-index: 3; }
.CodeMirror-gutter-filler, .CodeMirror-scrollbar-filler { background-color: rgb(255, 255, 255); }
.CodeMirror-gutters { border-right: 1px solid rgb(221, 221, 221); background: inherit; white-space: nowrap; }
.CodeMirror-linenumber { padding: 0px 3px 0px 5px; text-align: right; color: rgb(153, 153, 153); }
.cm-s-inner .cm-keyword { color: rgb(119, 0, 136); }
.cm-s-inner .cm-atom, .cm-s-inner.cm-atom { color: rgb(34, 17, 153); }
.cm-s-inner .cm-number { color: rgb(17, 102, 68); }
.cm-s-inner .cm-def { color: rgb(0, 0, 255); }
.cm-s-inner .cm-variable { color: rgb(0, 0, 0); }
.cm-s-inner .cm-variable-2 { color: rgb(0, 85, 170); }
.cm-s-inner .cm-variable-3 { color: rgb(0, 136, 85); }
.cm-s-inner .cm-string { color: rgb(170, 17, 17); }
.cm-s-inner .cm-property { color: rgb(0, 0, 0); }
.cm-s-inner .cm-operator { color: rgb(152, 26, 26); }
.cm-s-inner .cm-comment, .cm-s-inner.cm-comment { color: rgb(170, 85, 0); }
.cm-s-inner .cm-string-2 { color: rgb(255, 85, 0); }
.cm-s-inner .cm-meta { color: rgb(85, 85, 85); }
.cm-s-inner .cm-qualifier { color: rgb(85, 85, 85); }
.cm-s-inner .cm-builtin { color: rgb(51, 0, 170); }
.cm-s-inner .cm-bracket { color: rgb(153, 153, 119); }
.cm-s-inner .cm-tag { color: rgb(17, 119, 0); }
.cm-s-inner .cm-attribute { color: rgb(0, 0, 204); }
.cm-s-inner .cm-header, .cm-s-inner.cm-header { color: rgb(0, 0, 255); }
.cm-s-inner .cm-quote, .cm-s-inner.cm-quote { color: rgb(0, 153, 0); }
.cm-s-inner .cm-hr, .cm-s-inner.cm-hr { color: rgb(153, 153, 153); }
.cm-s-inner .cm-link, .cm-s-inner.cm-link { color: rgb(0, 0, 204); }
.cm-negative { color: rgb(221, 68, 68); }
.cm-positive { color: rgb(34, 153, 34); }
.cm-header, .cm-strong { font-weight: 700; }
.cm-del { text-decoration: line-through; }
.cm-em { font-style: italic; }
.cm-link { text-decoration: underline; }
.cm-error { color: red; }
.cm-invalidchar { color: red; }
.cm-constant { color: rgb(38, 139, 210); }
.cm-defined { color: rgb(181, 137, 0); }
div.CodeMirror span.CodeMirror-matchingbracket { color: rgb(0, 255, 0); }
div.CodeMirror span.CodeMirror-nonmatchingbracket { color: rgb(255, 34, 34); }
.cm-s-inner .CodeMirror-activeline-background { background: inherit; }
.CodeMirror { position: relative; overflow: hidden; }
.CodeMirror-scroll { height: 100%; outline: 0px; position: relative; box-sizing: content-box; background: inherit; }
.CodeMirror-sizer { position: relative; }
.CodeMirror-gutter-filler, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-vscrollbar { position: absolute; z-index: 6; display: none; outline: 0px; }
.CodeMirror-vscrollbar { right: 0px; top: 0px; overflow: hidden; }
.CodeMirror-hscrollbar { bottom: 0px; left: 0px; overflow: auto hidden; }
.CodeMirror-scrollbar-filler { right: 0px; bottom: 0px; }
.CodeMirror-gutter-filler { left: 0px; bottom: 0px; }
.CodeMirror-gutters { position: absolute; left: 0px; top: 0px; padding-bottom: 10px; z-index: 3; overflow-y: hidden; }
.CodeMirror-gutter { white-space: normal; height: 100%; box-sizing: content-box; padding-bottom: 30px; margin-bottom: -32px; display: inline-block; }
.CodeMirror-gutter-wrapper { position: absolute; z-index: 4; background: 0px 0px !important; border: none !important; }
.CodeMirror-gutter-background { position: absolute; top: 0px; bottom: 0px; z-index: 4; }
.CodeMirror-gutter-elt { position: absolute; cursor: default; z-index: 4; }
.CodeMirror-lines { cursor: text; }
.CodeMirror pre { border-radius: 0px; border-width: 0px; background: 0px 0px; font-family: inherit; font-size: inherit; margin: 0px; white-space: pre; overflow-wrap: normal; color: inherit; z-index: 2; position: relative; overflow: visible; }
.CodeMirror-wrap pre { overflow-wrap: break-word; white-space: pre-wrap; word-break: normal; }
.CodeMirror-code pre { border-right: 30px solid transparent; width: fit-content; }
.CodeMirror-wrap .CodeMirror-code pre { border-right: none; width: auto; }
.CodeMirror-linebackground { position: absolute; inset: 0px; z-index: 0; }
.CodeMirror-linewidget { position: relative; z-index: 2; overflow: auto; }
.CodeMirror-wrap .CodeMirror-scroll { overflow-x: hidden; }
.CodeMirror-measure { position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden; }
.CodeMirror-measure pre { position: static; }
.CodeMirror div.CodeMirror-cursor { position: absolute; visibility: hidden; border-right: none; width: 0px; }
.CodeMirror div.CodeMirror-cursor { visibility: hidden; }
.CodeMirror-focused div.CodeMirror-cursor { visibility: inherit; }
.cm-searching { background: rgba(255, 255, 0, 0.4); }
span.cm-underlined { text-decoration: underline; }
span.cm-strikethrough { text-decoration: line-through; }
.cm-tw-syntaxerror { color: rgb(255, 255, 255); background-color: rgb(153, 0, 0); }
.cm-tw-deleted { text-decoration: line-through; }
.cm-tw-header5 { font-weight: 700; }
.cm-tw-listitem:first-child { padding-left: 10px; }
.cm-tw-box { border-style: solid; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-color: inherit; border-top-width: 0px !important; }
.cm-tw-underline { text-decoration: underline; }
@media print {
  .CodeMirror div.CodeMirror-cursor { visibility: hidden; }
}


:root {
    --side-bar-bg-color: #fafafa;
    --control-text-color: #777;
}

@include-when-export url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext);

/* open-sans-regular - latin-ext_latin */
  /* open-sans-italic - latin-ext_latin */
    /* open-sans-700 - latin-ext_latin */
    /* open-sans-700italic - latin-ext_latin */
  html {
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif;
    color: rgb(51, 51, 51);
    line-height: 1.6;
}

#write {
    max-width: 860px;
  	margin: 0 auto;
  	padding: 30px;
    padding-bottom: 100px;
}

@media only screen and (min-width: 1400px) {
	#write {
		max-width: 1024px;
	}
}

@media only screen and (min-width: 1800px) {
	#write {
		max-width: 1200px;
	}
}

#write > ul:first-child,
#write > ol:first-child{
    margin-top: 30px;
}

a {
    color: #4183C4;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    position: relative;
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-weight: bold;
    line-height: 1.4;
    cursor: text;
}
h1:hover a.anchor,
h2:hover a.anchor,
h3:hover a.anchor,
h4:hover a.anchor,
h5:hover a.anchor,
h6:hover a.anchor {
    text-decoration: none;
}
h1 tt,
h1 code {
    font-size: inherit;
}
h2 tt,
h2 code {
    font-size: inherit;
}
h3 tt,
h3 code {
    font-size: inherit;
}
h4 tt,
h4 code {
    font-size: inherit;
}
h5 tt,
h5 code {
    font-size: inherit;
}
h6 tt,
h6 code {
    font-size: inherit;
}
h1 {
    font-size: 2.25em;
    line-height: 1.2;
    border-bottom: 1px solid #eee;
}
h2 {
    font-size: 1.75em;
    line-height: 1.225;
    border-bottom: 1px solid #eee;
}

/*@media print {
    .typora-export h1,
    .typora-export h2 {
        border-bottom: none;
        padding-bottom: initial;
    }

    .typora-export h1::after,
    .typora-export h2::after {
        content: "";
        display: block;
        height: 100px;
        margin-top: -96px;
        border-top: 1px solid #eee;
    }
}*/

h3 {
    font-size: 1.5em;
    line-height: 1.43;
}
h4 {
    font-size: 1.25em;
}
h5 {
    font-size: 1em;
}
h6 {
   font-size: 1em;
    color: #777;
}
p,
blockquote,
ul,
ol,
dl,
table{
    margin: 0.8em 0;
}
li>ol,
li>ul {
    margin: 0 0;
}
hr {
    height: 2px;
    padding: 0;
    margin: 16px 0;
    background-color: #e7e7e7;
    border: 0 none;
    overflow: hidden;
    box-sizing: content-box;
}

li p.first {
    display: inline-block;
}
ul,
ol {
    padding-left: 30px;
}
ul:first-child,
ol:first-child {
    margin-top: 0;
}
ul:last-child,
ol:last-child {
    margin-bottom: 0;
}
blockquote {
    border-left: 4px solid #dfe2e5;
    padding: 0 15px;
    color: #777777;
}
blockquote blockquote {
    padding-right: 0;
}
table {
    padding: 0;
    word-break: initial;
}
table tr {
    border: 1px solid #dfe2e5;
    margin: 0;
    padding: 0;
}
table tr:nth-child(2n),
thead {
    background-color: #f8f8f8;
}
table th {
    font-weight: bold;
    border: 1px solid #dfe2e5;
    border-bottom: 0;
    margin: 0;
    padding: 6px 13px;
}
table td {
    border: 1px solid #dfe2e5;
    margin: 0;
    padding: 6px 13px;
}
table th:first-child,
table td:first-child {
    margin-top: 0;
}
table th:last-child,
table td:last-child {
    margin-bottom: 0;
}

.CodeMirror-lines {
    padding-left: 4px;
}

.code-tooltip {
    box-shadow: 0 1px 1px 0 rgba(0,28,36,.3);
    border-top: 1px solid #eef2f2;
}

.md-fences,
code,
tt {
    border: 1px solid #e7eaed;
    background-color: #f8f8f8;
    border-radius: 3px;
    padding: 0;
    padding: 2px 4px 0px 4px;
    font-size: 0.9em;
}

code {
    background-color: #f3f4f4;
    padding: 0 2px 0 2px;
}

.md-fences {
    margin-bottom: 15px;
    margin-top: 15px;
    padding-top: 8px;
    padding-bottom: 6px;
}


.md-task-list-item > input {
  margin-left: -1.3em;
}

@media print {
    html {
        font-size: 13px;
    }
    pre {
        page-break-inside: avoid;
        word-wrap: break-word;
    }
}

.md-fences {
	background-color: #f8f8f8;
}
#write pre.md-meta-block {
	padding: 1rem;
    font-size: 85%;
    line-height: 1.45;
    background-color: #f7f7f7;
    border: 0;
    border-radius: 3px;
    color: #777777;
    margin-top: 0 !important;
}

.mathjax-block>.code-tooltip {
	bottom: .375rem;
}

.md-mathjax-midline {
    background: #fafafa;
}

#write>h3.md-focus:before{
	left: -1.5625rem;
	top: .375rem;
}
#write>h4.md-focus:before{
	left: -1.5625rem;
	top: .285714286rem;
}
#write>h5.md-focus:before{
	left: -1.5625rem;
	top: .285714286rem;
}
#write>h6.md-focus:before{
	left: -1.5625rem;
	top: .285714286rem;
}
.md-image>.md-meta {
    /*border: 1px solid #ddd;*/
    border-radius: 3px;
    padding: 2px 0px 0px 4px;
    font-size: 0.9em;
    color: inherit;
}

.md-tag {
    color: #a7a7a7;
    opacity: 1;
}

.md-toc { 
    margin-top:20px;
    padding-bottom:20px;
}

.sidebar-tabs {
    border-bottom: none;
}

#typora-quick-open {
    border: 1px solid #ddd;
    background-color: #f8f8f8;
}

#typora-quick-open-item {
    background-color: #FAFAFA;
    border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee;
    border-style: solid;
    border-width: 1px;
}

/** focus mode */
.on-focus-mode blockquote {
    border-left-color: rgba(85, 85, 85, 0.12);
}

header, .context-menu, .megamenu-content, footer{
    font-family: "Segoe UI", "Arial", sans-serif;
}

.file-node-content:hover .file-node-icon,
.file-node-content:hover .file-node-open-state{
    visibility: visible;
}

.mac-seamless-mode #typora-sidebar {
    background-color: #fafafa;
    background-color: var(--side-bar-bg-color);
}

.mac-os #write{
    caret-color: AccentColor;
}

.md-lang {
    color: #b4654d;
}

/*.html-for-mac {
    --item-hover-bg-color: #E6F0FE;
}*/

#md-notification .btn {
    border: 0;
}

.dropdown-menu .divider {
    border-color: #e5e5e5;
    opacity: 0.4;
}

.ty-preferences .window-content {
    background-color: #fafafa;
}

.ty-preferences .nav-group-item.active {
    color: white;
    background: #999;
}

.menu-item-container a.menu-style-btn {
    background-color: #f5f8fa;
    background-image: linear-gradient( 180deg , hsla(0, 0%, 100%, 0.8), hsla(0, 0%, 100%, 0)); 
}


 body {font-variant-ligatures: no-common-ligatures;} 
        :root { --count-content-h1: "";
--count-content-h2: counter(content-h2, decimal) ". ";
--count-content-h3: counter(content-h2, decimal) "." counter(content-h3, decimal) " ";
--count-content-h4: counter(content-h2, decimal) "." counter(content-h3, decimal) "." counter(content-h4, decimal) " ";
--count-content-h5: counter(content-h2, decimal) "." counter(content-h3, decimal) "." counter(content-h4, decimal) "." counter(content-h5, decimal) " ";
--count-content-h6: counter(content-h2, decimal) "." counter(content-h3, decimal) "." counter(content-h4, decimal) "." counter(content-h5, decimal) "." counter(content-h6, decimal) " ";
--count-outline-h1: "";
--count-outline-h2: counter(outline-h2, decimal) ". ";
--count-outline-h3: counter(outline-h2, decimal) "." counter(outline-h3, decimal) " ";
--count-outline-h4: counter(outline-h2, decimal) "." counter(outline-h3, decimal) "." counter(outline-h4, decimal) " ";
--count-outline-h5: counter(outline-h2, decimal) "." counter(outline-h3, decimal) "." counter(outline-h4, decimal) "." counter(outline-h5, decimal) " ";
--count-outline-h6: counter(outline-h2, decimal) "." counter(outline-h3, decimal) "." counter(outline-h4, decimal) "." counter(outline-h5, decimal) "." counter(outline-h6, decimal) " ";
--count-toc-h1: "";
--count-toc-h2: counter(toc-h2, decimal) ". ";
--count-toc-h3: counter(toc-h2, decimal) "." counter(toc-h3, decimal) " ";
--count-toc-h4: counter(toc-h2, decimal) "." counter(toc-h3, decimal) "." counter(toc-h4, decimal) " ";
--count-toc-h5: counter(toc-h2, decimal) "." counter(toc-h3, decimal) "." counter(toc-h4, decimal) "." counter(toc-h5, decimal) " ";
--count-toc-h6: counter(toc-h2, decimal) "." counter(toc-h3, decimal) "." counter(toc-h4, decimal) "." counter(toc-h5, decimal) "." counter(toc-h6, decimal) " ";
--count-table: "Table " counter(table, decimal);
--count-image: "Image " counter(image, decimal) " " attr(data-alt);
--count-fence: "Fence " counter(fence, decimal); }
        #write { counter-reset: content-h1 content-h2 image table fence; }
        #write > h1 { counter-set: content-h2; }
        #write > h2 { counter-set: content-h3; }
        #write > h3 { counter-set: content-h4; }
        #write > h4 { counter-set: content-h5; }
        #write > h5 { counter-set: content-h6; }
        

        #write > h1:before,
        #write > h1.md-focus.md-heading:before {
            counter-increment: content-h1;
            content: var(--count-content-h1);
        }
        
        #write > h2:before,
        #write > h2.md-focus.md-heading:before {
            counter-increment: content-h2;
            content: var(--count-content-h2);
        }
        
        #write > h3:before,
        #write > h3.md-focus.md-heading:before {
            counter-increment: content-h3;
            content: var(--count-content-h3);
        }
        
        #write > h4:before,
        #write > h4.md-focus.md-heading:before {
            counter-increment: content-h4;
            content: var(--count-content-h4);
        }
        
        #write > h5:before,
        #write > h5.md-focus.md-heading:before {
            counter-increment: content-h5;
            content: var(--count-content-h5);
        }
        
        #write > h6:before,
        #write > h6.md-focus.md-heading:before {
            counter-increment: content-h6;
            content: var(--count-content-h6);
        }
        
        #write > h3.md-focus:before,
        #write > h4.md-focus:before,
        #write > h5.md-focus:before,
        #write > h6.md-focus:before,
        h3.md-focus:before,
        h4.md-focus:before,
        h5.md-focus:before,
        h6.md-focus:before {
            color: inherit;
            border: inherit;
            border-radius: inherit;
            position: inherit;
            left: initial;
            float: none;
            top: initial;
            font-size: inherit;
            padding-left: inherit;
            padding-right: inherit;
            vertical-align: inherit;
            font-weight: inherit;
            line-height: inherit;
            visibility: inherit;
        }

        .outline-content { counter-reset: outline-h1 outline-h2; }
        .outline-h1 { counter-set: outline-h2; }
        .outline-h2 { counter-set: outline-h3; }
        .outline-h3 { counter-set: outline-h4; }
        .outline-h4 { counter-set: outline-h5; }
        .outline-h5 { counter-set: outline-h6; }
        
        .outline-content .outline-h1 .outline-label:before {
            counter-increment: outline-h1;
            content: var(--count-outline-h1);
        }
        
        .outline-content .outline-h2 .outline-label:before {
            counter-increment: outline-h2;
            content: var(--count-outline-h2);
        }
        
        .outline-content .outline-h3 .outline-label:before {
            counter-increment: outline-h3;
            content: var(--count-outline-h3);
        }
        
        .outline-content .outline-h4 .outline-label:before {
            counter-increment: outline-h4;
            content: var(--count-outline-h4);
        }
        
        .outline-content .outline-h5 .outline-label:before {
            counter-increment: outline-h5;
            content: var(--count-outline-h5);
        }
        
        .outline-content .outline-h6 .outline-label:before {
            counter-increment: outline-h6;
            content: var(--count-outline-h6);
        }
</style><title>OS27.【Linux】进程程序替换(下)</title>
</head>
<body class='typora-export os-windows'><div class='typora-export-content'>
<div id='write'  class=''><p><strong><span>目录</span></strong></p><p><a href='#1.%E7%9F%A5%E8%AF%86%E5%9B%9E%E9%A1%BE'><span>1.知识回顾</span></a></p><p><a href='#2.%E8%AE%A9exec%E7%B3%BB%E5%88%97%E5%87%BD%E6%95%B0%E6%89%A7%E8%A1%8C%E8%87%AA%E5%B7%B1%E7%9A%84%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6'><span>2.让exec系列函数执行自己的可执行文件</span></a></p><p><a href='#3.%E8%AE%A9exec%E7%B3%BB%E5%88%97%E5%87%BD%E6%95%B0%E5%88%A9%E7%94%A8bash%E6%89%A7%E8%A1%8Cshell%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6'><span>3.让exec系列函数利用bash执行shell脚本文件</span></a></p><p><a href='#%E5%86%99%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84shell%E8%84%9A%E6%9C%AC'><span>写一个简单的shell脚本</span></a></p><p><a href='#%E4%BD%BF%E7%94%A8exec%E7%B3%BB%E5%88%97%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8shell%E8%84%9A%E6%9C%AC'><span>使用exec系列函数调用shell脚本</span></a></p><p><a href='#4.%E9%AA%8C%E8%AF%81exec%E7%B3%BB%E5%88%97%E5%87%BD%E6%95%B0%E4%BC%A0%E5%85%A5%E4%BA%86%E5%8F%82%E6%95%B0'><span>4.验证exec系列函数传入了参数</span></a></p><p><a href='#5.%E9%AA%8C%E8%AF%81exec%E7%B3%BB%E5%88%97%E5%87%BD%E6%95%B0%E4%BC%A0%E5%85%A5%E4%BA%86%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F'><span>5.验证exec系列函数传入了环境变量</span></a></p><p><a href='#6.%E7%BB%99%E5%AD%90%E8%BF%9B%E7%A8%8B%E4%BC%A0%E9%80%92%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E7%9A%84%E6%96%B9%E6%B3%95'><span>6.给子进程传递环境变量的方法</span></a></p><p><a href='#putenv%E5%87%BD%E6%95%B0'><span>putenv函数</span></a></p><p><a href='#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%2C%E5%BD%BB%E5%BA%95%E6%9B%BF%E6%8D%A2%E5%8E%9F%E6%9C%89%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F'><span>自定义环境变量,彻底替换原有的环境变量</span></a></p><p><a href='#7.execve%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8'><span>7.execve系统调用</span></a></p><p><a href='#8.%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E8%AF%B4%E6%98%8E6%E4%B8%AAexec%E5%86%85%E9%83%A8%E9%83%BD%E4%BD%BF%E7%94%A8%E4%BA%86execve%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8'><span>8.从源代码说明6个exec内部都使用了execve系统调用</span></a></p><hr /><h1 id='1知识回顾'><span>1.知识回顾</span></h1><p><span>参见</span><a href='https://zhangcoder.blog.csdn.net/article/details/150472197?spm=1011.2415.3001.5331'><span>OS24.【Linux】进程等待 (下) 和 进程程序替换(上)</span></a><span>文章</span></p><h1 id='2让exec系列函数执行自己的可执行文件'><span>2.让exec系列函数执行自己的可执行文件</span></h1><p><span>mycommand.c编译为mycommand可执行文件</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"Mycommand is running ......\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 138px;"></div><div class="CodeMirror-gutters" style="height: 138px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>main.c编译为main可执行文件</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"即将执行execl\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">execl</span>(<span class="cm-string">"mycommand"</span>,<span class="cm-string">"mycommand"</span>,<span class="cm-variable">NULL</span>);<span class="cm-comment">//mycommand可以不用加具体的路径,因为mycommand和main在同一个目录下</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">printf</span>(<span class="cm-string">"execl已经执行完了\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 207px;"></div><div class="CodeMirror-gutters" style="height: 207px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>编写makefile,让其生成多个可执行文件</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">.<span class="cm-variable">PHONY</span>:<span class="cm-variable">all</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">all</span>:<span class="cm-variable">mycommand</span> <span class="cm-variable">main</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">mycommand</span>:<span class="cm-variable">mycommand</span>.<span class="cm-variable">c</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">gcc</span> <span class="cm-operator">-</span><span class="cm-variable">o</span> <span class="cm-variable">$@</span> <span class="cm-variable">$^</span> <span class="cm-operator">-</span><span class="cm-variable">std</span><span class="cm-operator">=</span><span class="cm-variable">c99</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">main</span>:<span class="cm-variable">main</span>.<span class="cm-variable">c</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">gcc</span> <span class="cm-operator">-</span><span class="cm-variable">o</span> <span class="cm-variable">$@</span> <span class="cm-variable">$^</span> <span class="cm-operator">-</span><span class="cm-variable">std</span><span class="cm-operator">=</span><span class="cm-variable">c99</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">.<span class="cm-variable">PHONY</span>:<span class="cm-variable">clean</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">clean</span>:</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">rm</span> <span class="cm-operator">-</span><span class="cm-variable">f</span> <span class="cm-variable">mycommand</span> <span class="cm-variable">main</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 207px;"></div><div class="CodeMirror-gutters" style="height: 207px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><strong><span>注意: .PHONY:all和all:mycommand main是必须要加的,否则make会gcc只生成一个写在前的可执行文件(即只生成mycommand,而不生成main)</span></strong></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p>&nbsp;</p><p><span>运行结果:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><h1 id='3让exec系列函数利用bash执行shell脚本文件'><span>3.让exec系列函数利用bash执行shell脚本文件</span></h1><p><span>让exec系列函数利用bash执行shell脚本文件来演示C语言调用脚本语言</span></p><h2 id='写一个简单的shell脚本'><span>写一个简单的shell脚本</span></h2><p><span>新建一个shell.sh,sh是</span><strong><span>sh</span></strong><span>ell脚本的后缀名</span></p><p><strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>脚本语言由解释器解释,因此必须在shell.sh中注明用哪个解释器解释</span></font></strong></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p>&nbsp;</p><p><span>下面填上路径即可:</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#! /usr/bin/bash</span></span></pre></div></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 23px;"></div><div class="CodeMirror-gutters" style="height: 23px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><strong><span>通过#!来设置运行shell创建一个什么样的进程来执行此脚本,而且#!可以调用任何一个解释器,例如python</span></strong></p><p><span>然后添加要执行的命令:</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#! /usr/bin/bash</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">echo</span> <span class="cm-string">"Hello World!"</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 46px;"></div><div class="CodeMirror-gutters" style="height: 46px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>检查是否能正常运行可以手动使用bash命令:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p>&nbsp;</p><h2 id='使用exec系列函数调用shell脚本'><span>使用exec系列函数调用shell脚本</span></h2><p><span>test.c写入:</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"即将执行test.sh\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">sleep</span>(<span class="cm-number">1</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">execl</span>(<span class="cm-string">"/usr/bin/bash"</span>,<span class="cm-string">"bash"</span>,<span class="cm-string">"test.sh"</span>,<span class="cm-variable">NULL</span>);<span class="cm-comment">//注意第一个/要加!</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 207px;"></div><div class="CodeMirror-gutters" style="height: 207px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>运行结果:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p><span>当然也可以写python脚本(前提要安装python),test.sh改成:</span></p><p><img src="data:image;base64,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sjp16oR58+ahsrISb775Ji5fvoyTJ0/6JaTe0eW+ffsqVtmOi4vDo48+CrvdjhMnTuDy5cvyqLUvffv2BQB888038mrrvtPOvXTv3l3+2zt63aVLF78R8Pj4eDDGInqnHbiq70TzECUJIt9KzXE8BNEOSZLcxS5C4LnWahyCXYLUap2NVJ9IfRFt311N+7SXOIzxGOPFhj5LavQM5pem+otiLAqCYzvGWhXyaQt1tAn6tLIvWq1f0YJitYU6SrHaCuzc6UK/oaNgXf8CkpKSFPumTJmCHj164F//+hcA9zTlkydPIicnB7fccoufLO906K+//lpV26NGjcLYsWNx7Nhp3DdtGvbv34+6jTlB6//zn//EiRMnwPNP4ubht+Elw+1h2yguLkafPn2waNEiXLhwAXPmzMH06dORm5uLffv2YebMmZg5cyamTJmiSKABYMaMGejVqxdefvllnxHiyGOsa9eucDqdigQagLr3xzke2Y8V4K677oLZbMZXu0Sk/U8/2Gw2OJ1O1NTUBBzRraurgyRJyMjIkEexOY7Hvw4exD/+8Q/8U8jGmTNncPDgQaSnp6Nr167ysfHx8bjnnntw/PhxfPnll6ivr0dVVRVuu+02RRudOnXCrbfeKv9fX1+Pzz77DHfffTe6deumqPvwww9j06ZNftvD0cJJtPtktAutlayG0CM/C6jIg0ajgUajga4YyDRaWudixmUjU+uCaVWMLBd8zelzDcRhrPvUrJf7XGBrnujYtA/FWKvbh3za/q8b7QWKVYrVtkKM9au210hcvFKDC6wrXnrpJUyYMAE6nQ5LlizBww8/jJ07d+LAgQNy/XXr1uHYsWNYuXIl5s+fj4kTJyI7OxtPPfUUCgsLcf78eZSUlPi1M2rUKNx///144IEHMGnSJCxduhSLFi3C8Qu9IF06hEPr12Plwf+FeJ9py425cOEC1q9fj543DUAXdgq7/t++sP2rq6vD888/j969e2Pt2rWYOnUqbr75Zmg0GqSmpmL06NEYPnx4oynLHNYc+BbL/uAesT179iz69evnKd2RFBeHSMZT9+3bh+HDh2PkyJFISEjA9ddfjyeeeEJ+aOF959gfz/l+eAvee+898DyPScVncH3KMKxd9gSys7MxevRo3HrrrRg+fLjfyParr76KgQMHYsGCBbhj+lqs3PgYrv/vf2H5tB5f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" referrerpolicy="no-referrer"></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#! /usr/bin/python3</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">print</span>(<span class="cm-string">"Hello Python!"</span>)</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 46px;"></div><div class="CodeMirror-gutters" style="height: 46px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>main.c改成:</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="bash"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="bash"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">int main()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  printf(<span class="cm-string">"即将执行test.sh\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-builtin">sleep</span>(1);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span>execl(<span class="cm-string">"/usr/bin/python3"</span>,<span class="cm-string">"python3"</span>,<span class="cm-string">"test.sh"</span>,NULL);//注意第一个/要加!</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  return <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 207px;"></div><div class="CodeMirror-gutters" style="height: 207px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>运行结果:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p><strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>结论:不同语言之间可以相互调用,因为无论是哪个语言编写的程序,其运行起来本质都是进程</span></font></strong></p><h1 id='4验证exec系列函数传入了参数'><span>4.验证exec系列函数传入了参数</span></h1><p><span>编译main.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-variable">argv</span>[]<span class="cm-operator">=</span>{<span class="cm-string">"mycommand"</span>,<span class="cm-string">"-a"</span>,<span class="cm-string">"-b"</span>,<span class="cm-string">"-c"</span>,<span class="cm-variable">NULL</span>};</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">execv</span>(<span class="cm-string">"./mycommand"</span>,<span class="cm-variable">argv</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 184px;"></div><div class="CodeMirror-gutters" style="height: 184px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>编译mycommand.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">argc</span>,<span class="cm-variable-3">char*</span> <span class="cm-variable">argv</span>[])</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">for</span> (<span class="cm-variable-3">int</span> <span class="cm-variable">i</span><span class="cm-operator">=</span><span class="cm-number">0</span>;<span class="cm-variable">argv</span>[<span class="cm-variable">i</span>];<span class="cm-variable">i</span><span class="cm-operator">++</span>)</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">printf</span>(<span class="cm-string">"%s\n"</span>,<span class="cm-variable">argv</span>[<span class="cm-variable">i</span>]);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="height: 161px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>将mycommand和main放在同一目录下,运行结果:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><h1 id='5验证exec系列函数传入了环境变量'><span>5.验证exec系列函数传入了环境变量</span></h1><p><span>将main可执行文件中自制的环境变量传到mycommand,然后mycommand调用env命令打印</span></p><p><span>编译main.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">argc</span>,<span class="cm-variable-3">char*</span> <span class="cm-variable">argv</span>[],<span class="cm-variable-3">char*</span> <span class="cm-variable">envp</span>[])</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable">execle</span>(<span class="cm-string">"./mycommand"</span>,<span class="cm-string">"mycommand"</span>,<span class="cm-variable">NULL</span>,<span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="height: 161px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>编译mycommand.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">argc</span>,<span class="cm-variable-3">char*</span> <span class="cm-variable">argv</span>[],<span class="cm-variable-3">char*</span> <span class="cm-variable">envp</span>[])</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">execle</span>(<span class="cm-string">"/usr/bin/env"</span>,<span class="cm-string">"env"</span>,<span class="cm-variable">NULL</span>,<span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="height: 161px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>将mycommand和main放在同一目录下,运行结果:</span></p><p><img src="data:image;base64,iVBORw0KGgoAAAANSUhEUgAAAWwAAACWCAYAAAD64bJyAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfpCBQKJjT9aZmkAAAAAW9yTlQBz6J3mgAALE9JREFUeNrtnX+UI2WZ778z0/ODkbuuID8zzBTdDbuN4rlO7cwOG0VvNEQvdI6Iq3vhDSgaIcMaWxmMHlFfYUALuNIbuYZrFOVUgbK7uGv67koIW/fqUojcE65XkHaO06FGKBCVq46wKqzU/aMqSVWlUqlKp9NJz/M55z2nu1J536feqnry1lPv+3zXATBBEARBjDzrV9sAgliLMFkDF1fbCmKtQQ67BYNsGJDZatsxrMOVYRgyxudwRXDNgHHEnKCoDKN/jrB7ZAQZE4dtXYxa4JBFBJM1aIYBwzBgGBpkGuKsHcRZJAUd5XnF+0GIa2NgRvRsS2QyNMOAlBCQrWjQZIahXIVd+4dYS4yJw+4Fg2xUkEMJ+VgMsVgM6UINk9nKkG5kYqVhc1kIagm8vtqWBBkpoyJNolZIo6DqKKfzyFdTmB3CiHQ4/aMgE4shQ78Jq4rpLSKXTc0wTMMwTEOTTcZl0zBkkwEmwEzZMEyZOb/jtw2myLipaXY9hmbKXHS3JTJT1jT7c6stzsSOeg2/IrPWfkx2/+/arnFThGhyza8ezeSi9xiYKQfZDNFkzv4xDFOTmSkiaj29+rnZR9xRj7ctn3qW0VbP8wWYYM3vOY5Pk00metuzzqvmV0fUInJTc52r8NfGMK9DkWv29QaTyV57V7AE9I+m2eddk03eugac+/a6npv1tz/33udRrnkqyy5+N6TjhLZOVkSHzWT75Iquetr72E7UeXGIzOQydzssx76+N7/nYhVZ+6KU5fYN1N2Ze25Kh/OxnI7nRmDclLnHZs1544atp1c/+/Sh7Xy4o5876rbrcfZVt30C2+o4X267NdnhpEVmcs+5GaTD7vaD3PPaGOZ12Dpmq0+H6bD9+8d22FxsX5Mycx1vuOu5x30e5ZqnMmiH7X9BOi/EcA5b9D3pzhGI+4LqZWTAjcIcI8XWzSi2bfBx2O7j8bvA3Y6t8wINsCFUPWH6WQy4cULU0zru/tty1+N1gP1ecKLJZa01CtNkZoqtH1v3j1G774Ju/CAnOsTrsFmXZh+Xobkd4UqVrv3jvCfd/RD8A+i9nsM77L7uHSqRiieGPYMpAWgcdAfC6gcbiIZVj7602FmPMIUZAICCqqpDyFZgGBo0WQZnYuQXNOL0JKAvYREAZqYgQEVVqQOoY6Gmd36ByahkgXI6A79QnOvY6wfReeQiuOvlpgFDSkSsJ0w/W/uo1aCAYUA9rX4O31bw+XKiw7NreNgsUM0jFoshFsujtJRCsWL1YzEFLHgOd3mx2eFdh7DrysSt9ycNXUAiK6FiaCs6qyJK/7j6YXLaPsZw13MYet87xHJZ0ZeO1k3Q/UJQMnHEYmkUCjXUMImsVEFlJa9ukUOTElAL8T4dgAiuVZCdrKGUjtlOJ4ZYQV3Jbhwavc5XmwYO9vtyS+HgSvPLdSg8g7jdj/EMh6takSOX6PWjtfzjGvR1WFc4qg0d5XQM6TKQkFZo+uSy+2dtX89rEY/DXsSSDkxOu8cX4vRkcC3iNCZ96lELjougVbwj2zoUhYNn4kiXdSCRinRxu0ZLi0vQkUCKiQBEzCYFx54MciULQS0s4y23PeotcSgOz9KzfzoI08/WPokU66+e5lNHhLbCna/hIc4mIehl9D9TbXjXYTeiP50Os38GdT0Tw8LjsOvgJRVCtgjO7Btc5ChmBcc+tiPJ8dYjFZtLQvCpJyHJYA4/ITIOmTdvAwYuc8fntoNtORp3fQcbgJCc7XxUbTlpAHWOfEHFpFSBYRQx1dBbdXNNQkIvI72sOUlNJ8pbdohM9vRPGML0s7UPEhJkRyeKjKPVhXbYR8gW26vq7Hr02oI9WnW05dkn2vmKhsg1GMZy5kczzGUFqCXPqNunL7teG8O8DgGIXIbsCqeIYKlEl7qW24dh+yeIQV3PxLDoDIkoGaTLDSQl+zGyOIWS6xGpDp4vQ0UWFcOAoc1her4E1a+ewhJSxfajaDEFVFtBSgULVTg+ryDZKCMd978AlXlHm4ZjRVedo6S2f0DqSvMRO45MJo5YnKNujyQgOL5vL66J5k/q4PkC1Ml2PcXUEvL9PEL27Gdrn1i6DOQqjj486Irz1nncqseOAxuVJBrlNOLOmE+zreY+xSmUyp1tBZ+v4SLyHBIhR49dr41QxzWg6xBAnc+jmiqi2Fo4U0EO3esaVv90J9z1zORm30hIAEhIzf/HaaXs2qHnm0nf2QIjVZozQjrnA49TGf1+HlbpNhthfMrKTusb//6h0nfpvBi4zF1zbMNPe1rNYi8AcC4yGWmbx7WfqYQpQ104Q+VIKp0bRSZ7VoYNYT7pEVion6lQoRKlrLP/IAiCIEacNZL8iSAIYu1DDpsgCGJMIIdNEAQxJpDDJgiCGBN8HLaPcotz9ZbIofnIBIlcg6HZK6bsfQy/ojlWVXGt5+T7MPv0h1dSKar80aDlkpZrz3Ig6SeCGAcmvBuYXIE0WUYhbecXEDm0SgVziK40oRZGWJ2iKamUHxEDR80egiBGDo/DZkglALXgSAZT54inAT4Tue6RxkpLWViGpJKCTGxwznX59hAEsdZxh0Q6su7Z1Dn4Whr4iRy5RBfB0mkGWQsQ8vWEezrDCM3wQo96BmUPRDAuu2zqEH4VGWRNc4Sl5HbSKa/tYW0mCGLouB12fQE13UruomkyOGNgo37PMtk/Vt7VoQYnfU9kc1jK2yk40z5CvnVuJ5cqICjlUyKXQtWuJ10GEs5seYO0h80ihWpLfDiWLqA2KTnyOYvgRQmJRgnp5j75KpCa7XgvEMVmgiBWB8/yx86cHIbmkAvyCHK6SjNxUcA+nVqDflJEiLRPpNJDUilYbqtz/2XLJQ3MHkfpJVmGZdpMhQqVVSk+s0RsFZC4PdIqlKELCUieoao3KXy6rHfU5Jc4Pr7KQdpekkrBclvhCSuXtHx7ekk8hZfAIoknghhtes7Drisc+bLu0IAbMaKERAYkOTUwhiTxNHQpNoIgVgSPw2bg4xa0VDI+8k/t4pxWGEZSKVhua7As354oEk8rI4FFEMTw6BhhT2UrrlkGIvNKTo0r4SSV/KS0lifDtJL2hJF4iiKBRRDEKOOZh61gvjCNuVwOFUOyt+lQy2lk+og9JyQDrWqa6F7JpAQkw0Dnbk6ZqzD7BNOUVEr3iD6o5RKmigYMwXHsju8w2YArRNw6RhWFCIK1g7HHkniaKkqoGFmrT9Qy8gWg0uosBQtVjrmiAUlAa590ZiV+hAiCWGlW/c3nypdRk1QaNXuoUKEyDoUEDAiCIMYEytZHEAQxJpDDJgiCGBPIYRMEQYwJ5LAJgiDGBHLYBEEQYwI5bIIgiDHBkw/bT9rLkgizsHI9a12Wr7fkvDrq0SBzNqBcJKsppTUom9cKa/W4CGI08R1hO7PspQsNJKSK7RCtpdDCVEDuOseS51Y96RKWkhIqDj3HvmlKac2PSAKnNWWz5YC1sPlkuh5XxHqGaTNBjDEhsvVlUFCBRI5DRB0HA3JuzkwJQONg55LnugIeL0AVsphb5mCsVzrSUWQcbT6Sj4sgRpVQMezFJd39dzPVqp3a1Bp9i7ASyXVLKaSgqgKJ1DI8dpCUVgh5K9ElpeXdxw73aPY+mgze2l9zKa+IjEMbgPyXyx5NBuOyQyHeL9TjH/7paU9PiTCrXsOoICvAzp1t79st3OF7XOHrWRWbCWIN0F6r3kVlhMkONRmHmomlBmOYhsxMQDS5Zn+3Sz0utRQm+6vW2MUvzwaTm205t1t5OQxNNpnoaMej4tKxzbaxrbLiVF2x63QcV6td226ZiYF9Fmxzs55Oe7xKMe56fbb1tKdtf0ulRmQml7mPio+1b7A6TY/jClPPKtlMhcq4l54jbJHJkBJop1ddXIJufYLZpAC1XIY+OQ0RM5gSdCyFzdkZIY+11VzQ6BrQa/OtnND1hRp0CGiH2i1b9XK+/fhet4QZhOSsK65uqa5YsXp7R0cYSATPJQC1gEyrMaseK2QU1marHj97ohHGHitntr602A5V1RXwDA+dWbCz2eBzMZI2E8QawNdhJ6T2DI+KNAm14EhjWj+IBiYxLc5gSlBR5QfREKYw001xfUBEktLqkLeyHEBU+S9XeKf1o9QZ9ulWT3ebA+yJRBh7wkuEDepcjKLNBLEWmPDbqBZ8RrgtFrGkC5iancakvoRFLGJaz2F6dglAAwfrQLc7y/VSkske7cEAG5pSWoXRGF8J2Qrs9NNOi93/DtHmXvYomTgUiGBsFtOpJLJSBdlUAbFMH7YN6LiGajNBrBEmon/FChEkk0kIjRLqqAM1oJhMQtBrASomDCnnja5kEAt57zWltPJ936tWiCM5LQKOOSyW3FYtgvKKHSopBf2ghbE5wJ4g6Vv7KabhqSeMPZZEWB1QOBa4hko2BQYlcohhUOdimDYTxFqhr5WOi0s6BEFoicfWDzYgCIL/lD4AEBm4JiHRQ7/Qn3BSWsHUsVDTfeW2okmf1cFLKhKSDOaZNSJz58yEXjZb9QjZYnvmg22Po5ct+a9WXFcEm0tC8Kkn2J4oEmHWj7E3rh/9XATVM2ybCWLtsIyl6Y4XjPaLSG9cshULr+QwVSt4pMHC0ZTSWu6akzqPI11uIFlp2pREI4LEWAslg3RhCaliO85fTAHVhbaBoWxWMpY9kj0drTiFkkvtvA6eL0NFFhXDgKHNYXq+5A28hLBHwUIVjs8rSDbKXc+FMu9o0zNFLsq5CKpnmDYTxFpj1aeqdC/jKKXVv82uaY8jV8bxXFChsubKqhtwhBZ7XnFrHrZzHvhq20aFCpVRLKTpuIqITEYxl4AgAJYiegnzXCE1c4IgfCGHTRAEMSZQPmyCIIgxgRw2QRDEmEAOmyAIYkwgh00QBDEmdDjslsxXjy+KzJ3L2TcltMjAHTmNNdmR0a4pI+ZRoRG51rENQCv3dsdnLTkyt83WcdiLKHylzwz/+giCIEaU/kbYTEZFmkQtbcuIlYBsRfM4bQa5IiFZKyEdiyEWS6OELIpezx5ShYalEoCuQxeSmPX1sAm0tRHspcwenNJnrdLH6svRg2SyCOJIoA+H3ZnLua7Mo6wLSDo8KZMlJNQC4q15xXUomTRKB9216boeQoXGVrOpldBw5bluo6pqux5xFkmoUPXV7l6CIIjB0YfD9svlbCfgaXlSKzNfp1yYnX3NQaNUgprIIXBwaIu91hYCZMaqVaiJFBisjHKoVbG0Qp021tJeBEGMLdEddhehApfWo403Qb8/Cqqqe3Te0eSslbp1oQ4olsf2ibErqKoJpBjDbBKoLYRPmgqgHSPvUlr+j8moZNvhoFh+CblsIlpbzXqkLBqltK0sX8NktuJw6iJ4UUKi0QwpxRDLV4HUrOPYFWTscFNZB/Ryuh3qobzRBLHmWJlZIl6n7nzp5/OST5kvA9m5Li867Xh0M3Xr4hJ0V7zaUU9VRSKXQxKWc/fiVNJpvQhtjmpDSZaNubQXQRBjzco4bK9EV50jHosh3c2x1RdQ0/2dsBUOQSv3trVvl7CIUoUqCECXHNd+Lx2jpVcdb2kvgiDGm+iKMx16iRYu+S+bSY+iSkCl4CUVRo6jWnN/Is5aSfsFyYAhOT4Q/NRHFGRaMjYRXVsUybIBQTJZBEFEoQ+JMD95q+YsjuaIUUFVlSBNzSCcw4Y1OpZySE25N89MCYDuSV7PZBjSJKYHOdwMJVk2vtJeBEGMP32ERBzyVk11KzaHrKCj5ggcK5kC1ITkmBssYmYqqF4F82UgkRAc2+zZJt4Qh1KFiuAXlSvDuEp7EQSxFujisBOQjOAXdE65rUoOKKfjcIeDFWTSBTSSxZbMkzTZQLnUXUOxvlCD7tzAUkjA/UPQrLuqRndQfi8dI690HENpL4Ig1gaUD3sAiFxDJVnrS7OSIAgiLJT8KTKeUIVoKYlHU18nCIKIDo2w+4CkvQiCWA3IYRMEQYwJFBIhCIIYE8hhEwRBjAnksAmCIMYEctgEQRBjgsdh2/mVOxZdOLZ3yG1pkDnzX3wSJBEWGhFM1hxtapCdSZBCy3/1qCfkPi3psW6LilqHHiChFlUerQtMNgJTwhoys+3VOvON2zbIrFsfWsfeYTPJrBHEqmK6CpNNwzBMmbW3iVwzDUM2GWBC5Kbm/FxkJtcM09C4KbrqYqZsGKbGmb1dNJlsmBoXzY42AwqTrbqZ2GzP277n/37rCbmPu580k4u9PxO9+9r1+vZzRz+GLCI3NV97ROv8yKxzW7Mtn+MUvddByH4OXywbgq+HMPtQoXLklM6QiJJBQXXkwrBzZaiFjH/CoboCHi9A9WgzhpUIC8bKJaKWOBRH/ul4uhxRTSZMPYNqK5yEGhBWHm25WHlL4FT1sXO/lPPdV2bWvdcBQRCrjm8MW8lYDrjIRbC5LAS10COrnFe6K7xEWCBd1G1Q5+BR0tWFqWdQbYWSULMIJY82CJQMCqqAbJFDbIknlNArFfjikr4CxoSRNQuzjyU83Bm+I0FiYu3S5aWjgvmylTxfSqgohMi/3L9EWABNsQLJgKbJ4Iy5stsNtJ5BtRVBQi2MPNqgUObL0IUsiloRWSHcOZ2ZEqI1EkpmLYysWZh9mk8OHrk4n8yRBLFW6DpLpJU5zzedZw8iSoR1pw4eT6NQVgEkkJUkSBVb+NazZ6D8V6h6wrc1SILl0QZI3ZIgEwQBenm+Zz5tkcmQfFLbLl9mbZCdV4XqkYtjqXBPDwQxjnRx2CJ4MQtBVVuhkUhElQgLrgwKzyAet276dKEMXUhA8jwK95b/ClNPuLYGSpA82qCbOtgA0H306XTGFWkSaiHdIaG2fJm1QWKH4lpxdvs9RJXkHYi1ib/Dbr6Ums/YoZHeI8DuEmGDpa7Yorcd4YXB19NXWxEk1OwvWGIGOY6ZnpWvLG5nHG8LBIclrPL8ALFCPUnMioDIc0joZcyTvybWKD4Om0GW2rMc6jyPst5rlOkd2dgCA1PLdUEMfCAvj8LUM6i2LMUZ94+VLaG21CW4pFShCskOebSxY9ghEcB+QhGQnGWYTVKaW2Jt0+GwmSwhARWl1mNu8+WO5D9CEhm4JnWMbKJLhPkzla1Ak9sLc0RmTTOMemOGqWcwbYWTUHPjJ4+21gkjaxZuH6u/JXrZSBwReBZf+C+OYLJhLZ5xLPqwimbKrcUx3sUczJQ1rb2vJpucRVsEITLursPQTNm5kKLDHkdxLELpWU/Yfbjm25bWsZ/ctkuT3Qta/Pq5eRwDXzjjKN0W+4RZFBOyn6PaLGuOelyLeyLsYy/S8v+MCpW1UygfNjH+iBxaJYtGYYXCLgQxIkystgEEsVzYXBaCXkaenDWxxiGHTYwvTIYhJQDoKKdJAJlY+6xSSIRBNiQkAvdRUYhlei7wWJtQ/xAE0QnFsAmCIMYEEjAgCIIYE8hhEwRBjAnksAmCIMYEt8N2yka5NndKV4WSwDLcme5a8lq+UmODlJzy5kq28iuvZA6n5dMtvzNBEIRFfyNsJqMiTaKWtrPalYBsxUc30JX6UsRsUuioyi/7Wyy+zCla4iySgo7yOGUBGhubSSCAIFaLPhx2eAksVVXbKjTiLJJQoeorf1CWSs545UQeR5sJghgufTjs8BJYqFah2oog4mwSqFUj6iP2gciRS3QbqTLImlPtXfT5uuxWTXftY4VWNM3eR5PBW/u7nzBExqH1aCuMzS57NBmMy45Qk1+oxz/809MekUF2KNwbmgzOOo89WLaLIIiVJLrDjiyBlUCKMcwmgdpCRO2aPvIrB41UE7kUqnk7jFMGEo6MeoAVY69k26GeWLqGyWyl8/G/No94rABVSCA7VUU8lkZZF5BtqhAzGRUpi0Yp7aqnm1/rajOT3fbkl5DLBi+n6daPwfaI4EUJiUYJ6WZYKl8FUrOOdxBhZLsIglhJfB22VwaqkhX6bkCpqkjkckiiBr/MlwOVnAocXQN6bb6liG5JoAloPxRYMXZnqKclq+VJ72k9XVh5r+0dcbDRrscSuS20BQDsenwVyLva3Bl6atYTjTD2WE9N+tJi+91BXQHPcFpJSRAjhK/D9r4I7E/ay0apQhUEoEtO6UFKTvWKA7vCOB3KMH6hHltWS5jqqgbjEiWYnIbocH5h6uluc4A9kQhjj4KqqtthDg2abIVD6LUiQYwW0ZM/RZbAUpCJNcdpEV1AK7mPP6oznabIYQ0kR2NMKGQrMLIdFrv/HaLNvexRMnEoEMHYLKZTSWSlCrKpAoU7CGKE6CNbnxUKSE6LQMs92xJYtcj66sEoGcRC+gtxNrnMFJt+xwWI1oFFUI63QyWl3rmZg20OsAcBo2z7HUPDU08Ye4A6FKUOKBwLXEMlmwKDQmERghgR+pgl0o8E1krDMJcVoJaWM3+7joWa7jouiP1LhCUkGcwza0TmzreOvWx29HOzItueNpYzbseiRbC5JASfeoLtYeAyd3xuz5nXl3x+qMLIdhEEsRL0t3BGySBdbiBZsV9K5oByOt7XHGK/l45RVzoOSi27zuOu4zIqSTTK6egxdSWDdGEJqWL7mIopoLrQNjCUzc1+luwpdMUplArOsEodPF+GiiwqhgFDm8P0fMkbeAlhj4KFKhyfV5BslJHusoBJmXe0SdP6CGKorLpO2fKKpecXqEc4cqV/m0Wu9a+hSIUKlXEvq24Ala6FmVzmJmuK5oqWo/cK/lKhQuXIKCRgMOKITEYxl4AgAIAOtVzCPFdIDosgjkDIYRMEQYwJlA+bIAhiTCCHTRAEMSaQwyYIghgTyGETBEGMCR0O25Lxckt7daWZ/tS70KUp/+WVFfORGoPIwB15mDV5ufJgK0hoCTURTNbcebWjJlMK0RaTjcD0s60FLUFpaiMuegnOF04QxEqyrBE2SyUAXYcuJDHrd98KWcwF+gMGuSIhWWvmYU6jhCyKY+4EmFyBNFlDyZlXW6r06IvoKBlHlsN0GTp0lNOxLnmqVRT80tRGSO5k5QtHR75wWuhIEMNhGQ67mfCphIYrr3QbXdfbEmE+MFlCQi0g3ppXXIeSSaN0cLW7ZTkwpBKAWuKt3Nuoc8TT5ZVX21lR7PwiatWVn7ukIvAcEwQxOPp32LZobG1BQbXLTdsolaAmcvAfMFuOzZunuZUxLqo5gRJYTdms3hJhy6aLIg/qHJzS3hEEsQz6dthWalBLRUaxPLZP3FtBVe0U53XiTdDvIqxEWEhJrl4SYQOhvoCabiW10jQZnDFXlrzxxcr6h0TKkaUxWOGHIIjB0qfDth+Pm4IFi0vQkYDfk7EyXwayc53O3DsSbb6odL6sDCURFl6SK1gibFDUweNpFMoqgASykgSpYgvoDrqpSCQgdfzoadF+sJQM0mW0szRKSTQKeVJ6J4gh0Z/DFmdhhTPtkVVzVOnnsesLqOk+ztyrXFPniPclRxZekitYImyQ1KHwDOJxezRfKEMXEpBW9e2c30tHT0pczxONV3yYyRoqySXHy9QSIPmIFBMEsSL0oThjh0MACJIBQ3J8IPgplFiP0kaOo1rrrGvSo6jiIoJEWChJrlWirnDkp5OoJC1V+ZEdkAYq/DCkEgLUgvNlqoL5cg6V5CxEXh/d4yKINUJfDntmSgB0T4J7JsOQJjHtN9hSqlClHFJTro2oqhKkqRl0dWGhJMKiSGAtk1CjcgbOF8GXGydY0SeAAWM/yZDDJoiVpY+QiD27wyubpVShotsLRgXzZSCRENxbMwWoCcnxSC1iZgoRCSvJNQjsGTHO2LhoSX05+2MqW4Ems9Y+IusuNWYtVDJ8wgrh2hoebXtY+8AwlxUAtUq6jwQxBLqMsK0XVJJnq15OI34whQR0lDv0G+0Rc3IW4kJnjfWFGvRs1qM3qCCTBuRiEUZTq1BXUS5FdEhKBmlwzBUNSK1qyiitwOwFxTIYlVb8RYfqkhFTMF+Yxlwuh0orXmTtk4k46u7d1nBp2iNVsva1oUNXC0iTsjpBDAXKh00QBDEmUPIngiCIMYEcNkEQxJjQ1yyRtQeDbEhIBO6johDL0Ms1giBWDYphEwRBjAkUEiEIghgTyGETBEGMCRTDJghiYOzevRvnnnsuXnrpJTz//PP4/Oc/j9///ve46KKLEIvFsHnzZvzyl7/ErbfeihNPPBHXX389Dhw4ANM08bvf/Q5f+tKXcPjwYezYsQPFYhEf/vCHsbRkZZLfv38/rr766o42N23ahHe+853YunUr1q9fj61bt6JSqeDgwc7E+rt27cLk5CTuuuuuVeujLVu24Oqrr/Y9ll70KRE2AAksR11cbkuEGZoM7slHKjKHLJUmd2SYCytrFliPM1tgoATWII99ePTqw75hcpe+b+YgX1mbRZFBbkrM9duYyHpeg53HbERPeuVNFzyEZGDD7MMb/+4h3HfffTjvvPNwljAB4ejnccEFF+CUU07B9PQ0brjhBlx798OIp9+D7373u9C0uzBz4nO47rrrcP311+P+++9HLpdrVfm9730Pl1xySWCzGzduxMc+9jE88MAD+OIXv4hbb70VX/jCIXz53ntx+2WxFevDM844A4yxwH1Wgr5CIoOTwGKQjQqSaEqExZAuAdncbNsBMhkVabIlS5UuAdlKxLSgEepRC+1sdumClVfbeWMOS/5roIgcRWkStUJ6eX04ajaLHHPFFKr5PAp95/kSwedSQDXfPu8lICl1kz5jkHOJqI1YONIF92/v6Pbhtie+jssuuwyiKOKj95yAV2X24Y1H/Suee+457NixA6L4AXz5H2/GCd++CZfu2oV4/NNo4M+Q/VOrloceegixWAxHH300AOCnP/0pHn/8cZx11lldW37Tm96Eb3/72zh8+DCuvPJKXHnllSgU/gr6Cy/g2JlzsGvXLlx++eW46qqrcNttt2HdunXYtm0b8vk8rrvuOrzmNa/BxMQEPvCBD2Dv3r34+Mc/jrPPPht79uzBFVdcgQ9/7lu4+5bXo37zB3D66afjG0+8CvnaQXz56stwxx13YPPmzdh3cxV/W/wLHFa/jlNPPRVvuxX44H1L+NZ//RD2798PQRCwadMmXHXVVfjQhz6Ed73rXQCA9evXY+/evfjrv/5rfOxjH8OOHTuwc+dOXH755bjppptwyimn+B6z6Swi10zDkE3m2d4uzJQNw5SZZ7vITc66fce/iFwzDY2bonc7Y/Y20eSaYWpcdHzeua23zSHqEbmp+RyX28bBHfswC5MN05BZj/7oszC5R98Px+bO/Qfdfvt60Dhbdv8N2t5R6MNLL73UTCaTjvqeNB//yoUmAHNmZsYs3/Oo+fNDD5mlT37SPO6448xt27aZn/zkJ111fPzjHzcFQTB37NhhXnrppebWrVvNG2+80ZyYmDD379/f0eYHP/hB82Uve5m5b98+84QTTjC3b99uXnbZ581r77nHVEvva+330Y9+1HzNa15j7tq1y/zUpz5lAjC3b99u7tu3zzz++OPNPXv2mADMiYkJU5Ikc8+ePeY111xjnntdzfz2/EXmvn37zAsuuMB84xvfZ+Zur5nfvfPT5szMjHn++eeb+//ZMO+7/jxzz5495plnnmm++c2Xm1979BlTueJV5kknnWRKkmSed9555vnnn28CME877TRz//795jnnnGNefPHFJgDzFa94hXnNNdeYO3fuNG+66SZzYmLCt4+jj7AHJoFliSD4JTKqK02NRyvXtVuVpg4r1XUU5YEB1TNo+a9WOMEhXabJruRKshbhUb1LP09PevOF17FQ0yEkZztCOd2TUTU/dz/6semOHVyhpf6esKPZHKrGHscVshIUsw2U+GKP3ZbT1qDk7Ibfh88++yyOPfbY1v8T69fjqFecDAA4cOBlOPDC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" referrerpolicy="no-referrer"></p><p><span>之前在</span><a href='https://zhangcoder.blog.csdn.net/article/details/149882753?spm=1011.2415.3001.5331'><span>OS22.【Linux】初识进程地址空间</span></a><span>文章提到过:</span><strong><span>进程地址空间是含有存放命令行参数和环境变量的区域的</span></strong></p><p><img src="data:image;base64,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6brO66+/TmZm5pBtATo6Ovjtb3/L6tWrh63r7e3l1ltvDf/udDpZv349t99++3FH9r322mu89tprI5bxtttu4+tf/zpz587lscce41//9V+ZP38+N9xwA3a7/ZjHnDt37gmfm+9973tomoaiKOi6jt/vH/GYwWCQ++67j61btxIIBFi5ciWLFy9mzJgxuN1uSkpK+Mtf/oLT6SQYDB63FnUsEkBCCMMUFBRw/fXXU1dXx44dOzhy5Ag///nPefbZZ7njjjvIz88nMjLyMx177Nix/Od//idOpxNN0zh69Ci/+93v8Hq9PP744+Hturu7effdd3n11VcBuOGGGzhw4AC6rqOqKv/+7/9OcXEx1157Ld/4xjc4evQod999N8nJydx4442cc845HDlyhMTERCIjI4eUd/Lkydxyyy1ERESwa9cusrKyiIuLQ1VVent72b17NzNnziQqKgq/3097ezvf+9730HWd//zP/2Tbtm2sWbOG5557jpiYmOOGz8n6l3/5F/r6+li9ejWtra3H3O7OO+9k586dRERE8Lvf/Y7i4mKsVitms5mYmBiSkpI499xzP1e5JICEEIYxm82kpqZy/fXXo2ka5eXleL1eDh06xA9/+EMSEhJIT08nKyuLlJQUxowZQ1xcHA6HA4fDgd1ux2q1jnjsqKgoJkyYgMPhAKCqqip87dG4cePC2/X09LB7925goNnp8ssvZ/v27ZSXl1NTU8OCBQtYtGgRkydPJjo6mnvvvRen08n06dNZuHAh8fHx/OAHP+Ccc87hwgsvZMKECQC4XC5mzZpFdHQ0W7du5c9//jNf/epXWbZsGQkJCezcuZOXX36ZsrIyFixYwIIFC8jKysJut5ORkUFJSQl+vx+z2UxaWho/+MEPOHjw4JDrp4LBIIWFhdxzzz0n/ZxffPHF7Nmzh3Xr1h1zG7/fT0lJCSaTienTp3POOecMCRlVVTGbzURERHy+1/8L+JsSQoiTZrVamTt3LoFAgHfeeYd9+/bR2dlJW1sb7e3tVFVVUVpaSnR0NHFxceHQsVgs4Z+LL76YqVOnHvdxduzYQU9PD6qqsmPHDqZNmzbidldccQWZmZk89dRTVFdXc+GFF3L++efT19fHhx9+yL59+8jNzSUrK4vKykree+89amtrSU9PH9LktnTpUnRd59lnn2XPnj0Eg0FsNlu4v8Vm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UjNz33333ce8digtLW3I73FxcSxfvpzi4uLwjNyDg0MiIiJITk4mOzv7Mw+EkAASQhhiz549NDU1hZvexo4d+7knIR00bty4IROLftxgU9Ps2bPp6OggGAwSFRXFnDlziI6OHvF4HR0dbNu2LTwEOTs7m3nz5nHRRRcxbtw44uPj6e7upqqqirq6OgCKiopG/KAfrGl98kN7cHl+fj5xcXEoijIknObPnz9sn+eee44NGzbQ09NDf38/FovlhMOyv/KVr5z082i1WsMDD74IEkBCCENUV1fjdrsBmDFjBi6X65Qd+6677iI2NvaY0/SoqspDDz005CLOT364OxwOXC4XUVFR9PT00NLSQigUYvbs2fzTP/0ThYWF4eNnZ2fzne98h/fff5/a2loAHnzwwc91DpmZmTQ1NQ0pzyfV19fT0NAQrvlMnDjxhDNCnE4kgIQQhujq6iIYDKIoCrNnz/7c84p93Mfnejue4zUd5eXlDbkW58477+TOO+885vZjxozhpptuOmXn8IMf/OCE29x9992n7PGMIHdEFUIYoq+vL3z9TU5OzjFrK+LsJQEkhDDEx6dzcblcn+l+MuLMJgEkhDDE4FBgRVEkfEYpCSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICGEEIaQABJCCGEICSAhhBCGkAASQghhCAkgIYQQhpAAEkIIYQgJICHEl87j8aAoCkD4XzH6SAAJIb50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" referrerpolicy="no-referrer"></p><p><span>环境变量也是数据,创建子进程的时候,环境变量就已经被子进程(上方的main进程)继承下去了</span></p><p><strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>结论:程序替换执行时,环境变量不会被替换</span></font></strong></p><h1 id='6给子进程传递环境变量的方法'><span>6.给子进程传递环境变量的方法</span></h1><p><span>由于</span><strong><span>环境变量信息不随程序替换而替换,而是会一路让所有子进程继承</span></strong><span>.那么给子进程传递环境变量的方法:</span></p><ol start='' ><li><p><span>新增环境变量  </span></p></li><li><p><span>彻底替换</span></p></li></ol><h2 id='putenv函数'><span>putenv函数</span></h2><p><span>putenv将环境变量添加到调用进程的上下文</span></p><p><span>编译main.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdlib.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;sys/wait.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">pid_t</span> <span class="cm-variable">id</span> <span class="cm-operator">=</span> <span class="cm-variable">fork</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">putenv</span>(<span class="cm-string">"TEST=100"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">if</span>(<span class="cm-variable">id</span> <span class="cm-operator">&lt;</span> <span class="cm-number">0</span>) </span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">perror</span>(<span class="cm-string">"fork"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">1</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">else</span> <span class="cm-keyword">if</span>(<span class="cm-variable">id</span> <span class="cm-operator">==</span> <span class="cm-number">0</span>)<span class="cm-comment">//子进程</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"子进程的pid:%d, ppid:%d\n"</span>, <span class="cm-variable">getpid</span>(), <span class="cm-variable">getppid</span>());</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">execlp</span>(<span class="cm-string">"./mycommand"</span>,<span class="cm-string">"mycommand"</span>,<span class="cm-variable">NULL</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">else</span><span class="cm-comment">//父进程得到子进程的PID</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">sleep</span>(<span class="cm-number">2</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"父进程准备回收子进程\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">sleep</span>(<span class="cm-number">2</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">pid_t</span> <span class="cm-variable">ret</span> <span class="cm-operator">=</span> <span class="cm-variable">wait</span>(<span class="cm-variable">NULL</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">if</span>(<span class="cm-variable">ret</span> <span class="cm-operator">&lt;</span> <span class="cm-number">0</span>)<span class="cm-comment">//返回-1等待失败</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">perror</span>(<span class="cm-string">"wait failed"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">if</span> (<span class="cm-variable">ret</span> <span class="cm-operator">==</span> <span class="cm-variable">id</span>) </span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"父进程回收子进程成功,子进程的pid:%d\n"</span>, <span class="cm-variable">ret</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">sleep</span>(<span class="cm-number">2</span>); </span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 829px;"></div><div class="CodeMirror-gutters" style="height: 829px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>编译mycommand.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">execlp</span>(<span class="cm-string">"env"</span>,<span class="cm-string">"env"</span>,<span class="cm-variable">NULL</span>);<span class="cm-comment">//ls没有带路径</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="height: 161px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>将mycommand和main放在同一目录下,运行结果:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p><span>但bash查不到:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p><span>TEST是在./main进程下产生的,具有临时性,./main结束后,TEST也就销毁了</span></p><p><strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>结论: 新增环境变量可以使用putenv,将环境变量添加到调用进程的上下文,这样就能被子进程继承</span></font></strong></p><h2 id='自定义环境变量彻底替换原有的环境变量'><span>自定义环境变量,彻底替换原有的环境变量</span></h2><p><span>编译main.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;sys/wait.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>()</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">pid_t</span> <span class="cm-variable">id</span> <span class="cm-operator">=</span> <span class="cm-variable">fork</span>();</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">if</span>(<span class="cm-variable">id</span> <span class="cm-operator">&lt;</span> <span class="cm-number">0</span>) </span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">perror</span>(<span class="cm-string">"fork"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">1</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">else</span> <span class="cm-keyword">if</span>(<span class="cm-variable">id</span> <span class="cm-operator">==</span> <span class="cm-number">0</span>)<span class="cm-comment">//子进程</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"子进程的pid:%d, ppid:%d\n"</span>, <span class="cm-variable">getpid</span>(), <span class="cm-variable">getppid</span>());</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-variable">envp</span>[]<span class="cm-operator">=</span>{<span class="cm-string">"TEST=100"</span>,<span class="cm-variable">NULL</span>};</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//彻底替换从./main那里继承而来的环境变量</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//./main的环境变量又是从bash那里继承而来的</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//bash的环境变量又是从操作系统那里继承而来的</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">execle</span>(<span class="cm-string">"./mycommand"</span>,<span class="cm-string">"./mycommand"</span>,<span class="cm-variable">NULL</span>,<span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">else</span><span class="cm-comment">//父进程得到子进程的PID</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">sleep</span>(<span class="cm-number">2</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"父进程准备回收子进程\n"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">sleep</span>(<span class="cm-number">2</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">pid_t</span> <span class="cm-variable">ret</span> <span class="cm-operator">=</span> <span class="cm-variable">wait</span>(<span class="cm-variable">NULL</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">if</span>(<span class="cm-variable">ret</span> <span class="cm-operator">&lt;</span> <span class="cm-number">0</span>)<span class="cm-comment">//返回-1等待失败</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">perror</span>(<span class="cm-string">"wait failed"</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">if</span> (<span class="cm-variable">ret</span> <span class="cm-operator">==</span> <span class="cm-variable">id</span>) </span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">printf</span>(<span class="cm-string">"父进程回收子进程成功,子进程的pid:%d\n"</span>, <span class="cm-variable">ret</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">sleep</span>(<span class="cm-number">2</span>); </span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 875px;"></div><div class="CodeMirror-gutters" style="height: 875px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>编译mycommand.c</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;stdio.h&gt;</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-meta">#include &lt;unistd.h&gt;</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">main</span>(<span class="cm-variable-3">int</span> <span class="cm-variable">argc</span>,<span class="cm-variable-3">char*</span> <span class="cm-variable">argv</span>[],<span class="cm-variable-3">char*</span> <span class="cm-variable">envp</span>[])</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">execlp</span>(<span class="cm-string">"env"</span>,<span class="cm-string">"env"</span>,<span class="cm-variable">NULL</span>);<span class="cm-comment">//ls没有带路径</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-number">0</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 161px;"></div><div class="CodeMirror-gutters" style="height: 161px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>将mycommand和main放在同一目录下,运行结果:老的环境变量被覆盖了,即彻底替换</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p><strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>结论:像这样execle(&quot;./mycommand&quot;,&quot;./mycommand&quot;,NULL,</span></font><span>*</span></strong><span>*</span><u><font style="color:#fe2c24;background-color:#fef2f0;"><span>envp</span></font></u><strong></strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>)的是环境变量的覆盖,不是追加,老的环境变量不在了</span></font><span>**</span></p><h1 id='7execve系统调用'><span>7.execve系统调用</span></h1><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p>&nbsp;</p><p><span>上面6个函数的底层最终都调用了execve</span></p><p><span>注意到:上面6个函数位于3号手册,是库函数</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p><strong><span>而execve处于2号手册,是系统调用</span></strong></p><p><img src="data:image;base64,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kWnZsjzbpIhpybZMRfLrMceqp/KGtvYpLSncuq7k6y+WnLq/TQCYqT7wgQ/oj3/8o+68807P9v/7v//T1q1bNW/ePNXU1EiS3vjGN+oPf/iDnnrqqaKyN998s7Zt2zZue6+88ora29slSR/60IeKHr/tttsUDod1/vnnl70vTU1NOuuss7Ru3TqNjIyotrZWGzZs0L333qvLL79c73//+3XJJZfo6quv1pw5c3TuuefqtNNO80ydzY+6ujpP/bW1tbrhhht077336stf/rLvmdC3v/3tuvLKK3X77bfrvvvu0y233KLm5mZPmS996UtqaWnRGWecoY0bN+ree+/VzTffrLlz53rKve51r9MnP/lJ3X777frGN76hm266SWeccYY6Ozv15JNP5sq9973v1S233KL77rtPW7Zs8T17+7a3vU3r16/PTTn+zGc+o+OPP76oXH19vW655RZ94xvf0MaNG/XWt77Vd6zD4bCuvfbaXH1r1qzRySef7Clz1VVX6eKLL9YZZ5yhW2+9VTfddFNRPSSMmJGi8ZSsjiaF1a6V9SF32t+KbVq6rjBxCEvbVigUqtfKfknhJnXkXQQVja/T0m0rVB8KZcqEFW7t0B0lvmw2NdWpL9te/Ur1Be+x4nes0dw9G1Vf36600mqvr9fGPXO15o7RPgfZr1jSUkdTWOn2encaX7hJrZbfdNGx9j2mpNWhprDUnm0nFNKKbRpta6hNdaH8qYLpvLJTdUPxtNLpsBYtq/6X/eCvjbDq9qzIjFNYTa1W2dfZReMpWa1NUnt9bgqrwq3qsMpMzI2Eeja0aN+WJaqpqVHNkgHNbulRouCShYZVC7V9dY1qamq0pEtqaNmk0VxvWL0DI6ptXKzR9C+ixY21Ghno1XB+PS2rtDdTT7YtayqTxqFdSkkq+U8FADgMHXvssaqrq9NDDz2k/fv3Fz3+ve99T5///Of161//WpL0i1/8Qscee6yWLl1adHZux44d2rlzZ6B2X3jhBf3sZz/T3/zN3xTVs2fPHv34xz/Wxz72MR111FGB9yUUCmnZsmW666679PTTT+u0007Tddddp3379unqq6/WgQMHtGzZMg0PD+uFF17QwMCA3v3ud+vXv/61Wltbc/HZz35WL7zwgvbs2aN0evSikFmzZunyyy/X9773PV133XXav3+/rrjiCs/U1ne+85269tpr9Zvf/EY33XSTvvCFL+jnP/+5Vq1apb/+67/29PeUU07R5z73OQ0NDekrX/mKXn31VV199dU67rjjcmWuuOIKXXjhhbr77rt11VVXaWRkRCeddFIugZekCy64QJdffrl27NihjRs36n//93/1mc98RtHo6Ifd2972Nl133XX64x//qOuvv15f/epXdeaZZ2r9+vU68sgjc+XOOeccrV27Vo888oiuuuoqDQwM6POf/3zR9N1wOKzrr79eL774oq688kr927/9m9785jfrS1/6ko4++mhP2WOOOUZf/OIX9cwzz+j+++8vOm4kjJiBYlrXGpaUVvuKNnVm53MOdaq5uXB6Z7+2dQ5JGtKOPZk3jLr5ueRrqK1ZzZ1DmeeMlgnP9Z93n25fMXr91VCn2tqCTiYdUltdnZrbOvP6N6TOtmbV1WX7HGS/YlraJElp9W0dktSpbf2S5JdkjbHv0fnK/b9twejzhjrbfMZwOqXU15dWeNEyTfzKh8oI/tooPBblXoeZPe792ph9PQ1tVV9akpoUvKqIzFUN0uBaLe/OpHXDplZ3jahhlan8NG5kIK5ckd4BjahWc/LWLhjuHdBIbaMWZ58UWazG2hEN9A57WhzpWi0zuynTljfRrLQdcg9DWHOr/QIBgBnizW9+s0KhkJ544gnfx/fv36/du3fr5ZdfliQNDAwonU7rE5/4hG699VZ96lOf0nve8x6deOKJZbedTqd17LHH6o1vfGPRY3fccYdOPvlk/f3f/33g+sLhsE466SR95zvfkSRdfPHFevTRR9XR0aGdO3fq29/+to477jj9z//8jyTpiSee0Mknn6xXXnlF+/bty0UkEtEJJ5ygzZs3y3GcXP1nnXWWbrvtNvX392t4eFi33HKLjjvuOJ155pm5Mn/1V3+ln/zkJ9q8ebMefvhhPfbYY7rtttu0Z88enXvuuZ7+nnvuudq0aZO++c1v6vvf/77Wr1+vE044QWeddZYk6U1vepPe8Y536Ktf/aq2b9+unTt3atOmTbJtW0uWLJHkXq/58Y9/XD/60Y90yy236Cc/+YluvfVWffe739X73//+XFsrV66Ubdu67rrr9POf/1zf/e53dc0116i2tlYXXnhhrtzHP/5xPfzww9qyZYt27typ+++/X11dXZo1a5an76tWrdITTzyhG264Qbt379YDDzyga6+9VieddJIWLlzoKVtfX6/7779f//Iv/6L/+q//KjpuJIyYeXLJTkq7JpvZRONK5k3/tFrD7va8pDJfatINKnPmrnDhj4D75VNmvCTXvw/ZMzVhtXZY7nTLVFLxicyBrLBdW/uUDi/S0rmTr2tSAr82io9Fee1kj2mTOnJTUi2NNhf0mMzTnFppZO9uz9bh9D6pdo7y17Lblx7OL6B9hVUN92pgpFaNmYwxsrhRtSMDKsgXvfWUaGuqlBqXzmb3LHhd4H/mAMDBLXsG7w9/+EOg8gcOHNDatWt166236rnnntNFF12kNWvW6M4779QVV1xRtFLqWP74xz9Kku/iM7/61a/U19enZcuW+U6b9HPaaafp2Wef1f79+3XUUUfpXe96lwYGBnKPn3rqqXrqqaf0q1/9SpK72utzzz3nqaOmpkbLli3Tt771Le3b5/2Ee+655/TAAw/kfn/yySf15z//2bPQTyKR0PXXX1/UtyeffLIoMbZtW4888kju9xdeeEEvvfRSblrna17zGknS73//e8/z9u/fnxvncDisk08+Wd/73vc8Zb797W/rRz/6kSR3GnFdXZ1++MMf6tVXX82VGRkZ0eOPP56b+ltTU6PTTz8997ysBx98UC+99JJnnOfOnavBwUFPQv3b3/5We/fu1TnnnON5/tFHH62tW7eWPG5HCjhkxZS0WtUkqX9lvZo7hzJTA8PV7tg06FRzaIdi8XVauqhOTeGwwuGwWjuatGh+fXW/bA9tVV+6VYvqqrmuaDVeG/1aWYGpvrUtPbKL1isYLLMWd1pqS+NiRUz5Tkettor88wYADgG//e1vJUmvfe1rAz/n5ZdfVl9fn/r6+nT00Udr/vz5uuCCC3ThhRfq9NNP12WXXaZXXnll3HqyiVGpZPWee+7RhRdeqGXLlumrX/3quPU5jqNjjjlGkpuEHnnkkXrxxRdzj59//vl68MEHJUlHHHGELrzwQiUSCU8dl156qV544QXdfffdRfXbtl3U3oEDB4qmzZ599tm66KKLVFtbq9e//vU66qijdOSRR2rXrl2ecoXXgUru9Z3Z+p5++mmlUiktW7ZMzzzzjJ5//nmdd955etvb3pYbjze/+c2SpF/+8peeetLpdG46bbbMM888U9TeL3/5y9x1k29605t863IcxzOO2emwF198sf7pn/7JU/aoo44qev6+fftyZ6j9kDBi5smcHQtnr2Oa6PfG3Jmd7NRNacHcKiaLQfbLp0y2z+k9O8ptUJ1tzepsk9wFXix1NGXPVFbzy/iQdqWk1qYqHouyXhvFx6K83a3Q61m7tXdE0pYaLe+e/BAM9w5opKVRi035TkeVpNnhiJSXRkbCs6WRAe0O3kyZFsgd4rRKvdxjSUcdTVK6vcr/+ACAafL888/rwIEDestb3uL7+KxZs3TWWWfpoYce8k3sXn75ZT300EN66KGH9Nxzz+nDH/6wzjzzzFxiNpba2lrt379fzz//vO/jL774ou655x6tWLFCfX3jr/zw5JNP5q7vs21bzzzzjBYuXKidO3fqnHPOUX19ve69914dc8wxamlp0W9/+1v99Kc/zT2/sbFRZ555pq655hr96U9/Kqrf7xrPQhdddFFuFdi7775bv/rVr7R//34ZhqETTjjBU/bAgQO+deRf0/n1r39dX/ziF7V582ZJbnL99a9/Xd/+9rclKXfGcKwE/c9//nPJMq95zWt0xBFHeOoaK7nLL9fZ2amHH364ZHtZ4529ZkoqZqBOrW9PSwqr9Y78VT1jSiYnslpm5ot6NHt94Ezer8JrFguvaQwoGlcyWe4qnNN33VjnNp878u3Yk7mXYXbBk6iWLSqRoOWm3DZpaamdDFIm0Guj8FhI/ds6y2jLe9xzj0ajiiWTZdz7cljmlkE1bEjIyLuIMGKYSpgTuFFvZlpqS0uL73RUSarNXywnYmpTyxSfiazkdHQAOEQcOHBAP/vZz3T22WcXXacmuWflvvCFL+j1r3+9jj/+eN14441697vf7VtXdsGbY489dtx23/CGN+hd73qXhoeHPdMaC/X19en555/Xxz72sXHrHBkZ0cjIiD760Y9KkjZv3qxIJKJ7771X0WhU99xzjz70oQ/p7rvv1oknnqjrrrsu1/aJJ56oj3/847IsK3eN40QYhqGdO3fq6quv1g9/+EM99thjeuqpp8o6g5s1a9YsrV69Wvfcc49aW1v1qU99SoZh6Gtf+1qu39nptdmziFlvfetbc9d/ZsucdtppRW2ceuqpuTOP2XKnnHKKp8wRRxzhmRacPYN41FFH6ZlnnvHEr3/9az377LNl7ScJI2akobY61a/sV1qt6sje6uGOpdq2vowFW4batGJlv9LZ20XcsVTqr+7t1YPsV2dzvVb2pxVutdxbXqT71V7vc03kOPu+fpu09I5U7pq5jqa00v0rVd9cOCmyU+tX9istqaljOm6rIalzW/FN3IfatKI973g5d2huqtTx6lRzrs9W7pYX3uRrjDJlvTbSSs29I3P7kbT62+tVNITj9GeorU717e5xt7LXMd6xTvO3rS/vuHYv15K1e7VwU/ZWF7Y2LZS2907klKM7LVVSySRwsGuL5mTb6mnUvq4lqjenbuJqdNkihSWl29eXmLob1fzMak5MWQVwOOnr69OsWbN08cUXe7Yff/zx+vCHP6xHHnlETz/9tH7/+9/rd7/7nT7xiU/4LlRz3nnnyXGcomv/Ch199NH69Kc/LUnj3kvwlVde0R133KHzzz9f/+///b9x9+WWW27Rueeeq1gsph07dmj58uX62Mc+phtvvFF33XWXPvKRj8gwDP3rv/6r59rAWCym17zmNersnNzFHbNmzdJjjz3mSYLf+MY36u1vf3vZdb3lLW/Rcccdp/vvv1/79u2TbdtFZyX37Nmj3/zmN7rgggs82z/4wQ/qb//2byVJv/nNb/Too4/qve99r+fs5Vvf+lbNnj1blmVJcqesPvXUU0WruZ5zzjmelU+ffvpp7d27VwsXLvTUd/TRR2vz5s1asWJFWfvJlFTMWEOdzaor9Z7Q2axQ4UmetjqF2sqoY7SU2upCahuv2HTsV6Y/nc11pa91C7zvbWruDLZXwcZpEor63KnmUHGDQ23NqgvWZSlIn8coM+4++4zzZPpT1r6NYbjb1PJus8Sj3Vpe0x1gW6Yus141paqSpHS3lpsVmP8aSPaMct5qskWyU1b7tW0qX68AMMM88sgjuu+++/SBD3xAb3jDG/TTn/5UJ554opqamvTa175Wt9xyS67sV77yFV133XXavHmzfvSjH+nJJ5/UkUceqUgkojPPPFO9vb16+umnPfVfeOGF+tOf/qQjjjhCp556qs477zydeuqp6urqGje5lKQf//jHet/73qczzjhj3LK7d+/W+vXrdfnll+uss85Sf3+/Hn30Ub3+9a/XSSedpPnz56u3t9fznLPPPlvvec979M1vflOzZs3ynGl99tlnx52ime9nP/uZzj//fP3gBz/Q448/rre85S267LLLlE6nPbevCOKpp57SSy+9pM985jP6wQ9+oN/97nc6cOCA9u/fryeeeEL79++X4zhKJBJqbW3Viy++qIcffljveMc79N73vldf+tKXcnXdeeeduvbaa7Vu3Tr19fXppJNO0kc+8hE99thjnpVLv/a1r2nNmjXavXu3LMvSnDlztGLFiqLrN2+77TZdc801uuaaa7R9+3a9+uqret/73qdZs2YpmUyWtZ8kjABwECj8IJgWG2zZG/wfyr+/VFZThyOnI11wRjyqeGp0VdiSYuvUGpb6V46xMFBmymrpM5AAcOj6j//4D/3iF7/Q4sWL1dLSopdfflkPPPCAvva1r3kWS3n++ed1+eWXa+nSpTr33HN1wQUX6MCBA3r88cd144036vvf/35R3flnLv/whz8onU5r8+bNnhVHx3PbbbfphhtuCFT2gQce0CWXXKLFixfroosu0ooVK+Q4jp577jnt3LlTxx13nOd6xHnz3PW53//+93tuRSFJl19+uR577LHA/dy8ebM++clPav369Tr66KM1MjKiO++8U/Pnz1dDQ0NZx+TVV1/Vo48+qne84x1asMB7Xc/LL7+sW2+9VQMDA7nbiHzwgx9UU1OTfvnLX+rGG2/UT37yk1z5Rx55RNdcc42WL1+udevW6cUXX9TQ0JDuvPNOz7WNP/7xj/W6171OH/rQh/SJT3xCIyMjisfjRWcNH374YV111VX66Ec/qra2Nr388ssaHh7WjTfemLtnZ1AhSU5ZzwAAHOIMJewN0trKLLADAMChaM2aNfqLv/gLXX311frd734nyV0Q57jjjtPy5ct13nnn6SMf+Ui1uzlpnGEEMAkxJZ0Ojb2WUGVuJ4HpVHoaKwAAGHXKKafoPe95jx5//HHt379fxxxzjE4//XTNnz9fTz75ZLW7VxGcYQQAAACAMh1//PH6x3/8R5199tk65ZRTdPTRR+ull17Ss88+qwcffFBbt27NnXk8mJEwAgAAAAB8cVsNAAAAAIAvEkYAAAAAgC8SRgAAAACALxJGAAAAAIAvEkYAAAAAgC8SRgAAAACAr/8PpDOLHJSU1FsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjUtMDgtMjBUMTI6MTc6NTgrMDA6MDA/hsz3AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDI1LTA4LTIwVDEyOjE3OjU4KzAwOjAwTtt0SwAAACh0RVh0ZGF0ZTp0aW1lc3RhbXAAMjAyNS0wOC0yMFQxMjoxNzo1OCswMDowMBnOVZQAAAAASUVORK5CYII=" referrerpolicy="no-referrer"></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><h1 id='8从源代码说明6个exec内部都使用了execve系统调用'><span>8.从源代码说明6个exec内部都使用了execve系统调用</span></h1><p><span>在glibc-2.42(2025-07-28发布,可以从</span><a href='https://ftp.gnu.org/gnu/libc/?C=M;O=A'><span>https://ftp.gnu.org/gnu/libc/?C=M;O=A</span></a><span>下载)源代码的posix的文件夹中,有exec系列函数和execve系统调用的源代码:</span></p><p><img src="data:image;base64,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" referrerpolicy="no-referrer"></p><p>&nbsp;</p><p><span>execv函数:</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">/* Execute PATH with arguments ARGV and environment from `environ'.  */</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-def">execv</span> (<span class="cm-keyword">const</span> <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-variable">path</span>, <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-variable">argv</span>[])</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-keyword">return</span> <span class="cm-variable">__execve</span> (<span class="cm-variable">path</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">__environ</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 138px;"></div><div class="CodeMirror-gutters" style="height: 138px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>execl函数:</span></p><p><span>节选了关键代码</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">execl</span> (<span class="cm-keyword">const</span> <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-variable">path</span>, <span class="cm-keyword">const</span> <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-variable">arg</span>, ...)</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable-3">int</span> <span class="cm-variable">ret</span> <span class="cm-operator">=</span> <span class="cm-variable">__execve</span> (<span class="cm-variable">path</span>, (<span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-operator">*</span>) <span class="cm-variable">argv</span>, <span class="cm-variable">__environ</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-variable">ret</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">libc_hidden_def</span> (<span class="cm-variable">execl</span>)</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 184px;"></div><div class="CodeMirror-gutters" style="height: 184px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>execle函数:</span></p><p><span>节选了关键代码</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">/* Execute PATH with all arguments after PATH until a NULL pointer,</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-comment">and the argument after that for environment.  */</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">execle</span> (<span class="cm-keyword">const</span> <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-variable">path</span>, <span class="cm-keyword">const</span> <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-variable">arg</span>, ...)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-variable-3">int</span> <span class="cm-variable">ret</span> <span class="cm-operator">=</span> <span class="cm-variable">__execve</span> (<span class="cm-variable">path</span>, (<span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-operator">*</span>) <span class="cm-variable">argv</span>, (<span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-operator">*</span>) <span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-keyword">return</span> <span class="cm-variable">ret</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">libc_hidden_def</span> (<span class="cm-variable">execle</span>)</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 230px;"></div><div class="CodeMirror-gutters" style="height: 230px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>execvp函数:</span></p><p><span>节选了关键代码</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><span><span>​</span>x</span></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">/* Execute FILE, searching in the `PATH' environment variable if it contains</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-comment">no slashes, with arguments ARGV and environment from `environ'.  */</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span> <span class="cm-def">execvp</span>(<span class="cm-variable">file</span>, <span class="cm-variable">argv</span>)</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">const</span> <span class="cm-variable-3">char*</span> <span class="cm-variable">file</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">char*</span> <span class="cm-keyword">const</span> <span class="cm-variable">argv</span>[];</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">if</span> (<span class="cm-variable">strchr</span>(<span class="cm-variable">file</span>, <span class="cm-string">'/'</span>) <span class="cm-operator">!=</span> <span class="cm-variable">NULL</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span>{</span></pre></div><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">/* Don't search when it contains a slash.  */</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">__execve</span>(<span class="cm-variable">file</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">__environ</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">if</span> (<span class="cm-variable">errno</span> <span class="cm-operator">==</span> <span class="cm-variable">ENOEXEC</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">if</span> (<span class="cm-variable">script_argv</span> <span class="cm-operator">!=</span> <span class="cm-variable">NULL</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">scripts_argv</span>(<span class="cm-variable">file</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">argc</span>, <span class="cm-variable">script_argv</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">__execve</span>(<span class="cm-variable">script_argv</span>[<span class="cm-number">0</span>], <span class="cm-variable">script_argv</span>, <span class="cm-variable">__environ</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">free</span>(<span class="cm-variable">ptr</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span>}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">else</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span>{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">do</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">__execve</span>(<span class="cm-variable">startp</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">__environ</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">if</span> (<span class="cm-variable">errno</span> <span class="cm-operator">==</span> <span class="cm-variable">ENOEXEC</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable">__execve</span>(<span class="cm-variable">script_argv</span>[<span class="cm-number">0</span>], <span class="cm-variable">script_argv</span>, <span class="cm-variable">__environ</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span>} <span class="cm-keyword">while</span> (<span class="cm-operator">*</span><span class="cm-variable">p</span><span class="cm-operator">++</span> <span class="cm-operator">!=</span> <span class="cm-string">'\0'</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span>}</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">/* Return the error from the last attempt (probably ENOENT).  */</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">return</span> <span class="cm-operator">-</span><span class="cm-number">1</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">libc_hidden_def</span>(<span class="cm-variable">execvp</span>)</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 968px;"></div><div class="CodeMirror-gutters" style="height: 968px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>execlp函数:</span></p><p><span>节选了关键代码,内部调用了execvp函数</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">/* Execute FILE, searching in the `PATH' environment variable if</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-comment">it contains no slashes, with all arguments after FILE until a</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-comment">NULL pointer and environment from `environ'.  */</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-def">execlp</span>(<span class="cm-keyword">const</span> <span class="cm-variable-3">char*</span> <span class="cm-variable">file</span>, <span class="cm-keyword">const</span> <span class="cm-variable-3">char*</span> <span class="cm-variable">arg</span>, ...)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-variable-3">int</span> <span class="cm-variable">ret</span> <span class="cm-operator">=</span> <span class="cm-variable">execvp</span>(<span class="cm-variable">file</span>, (<span class="cm-variable-3">char*</span> <span class="cm-keyword">const</span><span class="cm-operator">*</span>)<span class="cm-variable">argv</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-keyword">return</span> <span class="cm-variable">ret</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">libc_hidden_def</span>(<span class="cm-variable">execlp</span>)</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 276px;"></div><div class="CodeMirror-gutters" style="height: 276px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><span>execvpe函数:</span></p><p><span>节选了关键代码,其中weak_alias (</span><strong><span>execvpe, execvpe)说明execvpe是</span></strong><span>execvpe函数的别名, </span><strong><span>execvpe调用了</span></strong><span>execvpe_common函数,后者又调用了__execve</span></p><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="cpp" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="cpp"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.51875px; left: 19px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 11px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: -11px; width: 11px;"></div><div class="CodeMirror-gutter-wrapper CodeMirror-activeline-gutter" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-comment">/* Execute FILE, searching in the `PATH' environment variable if it contains</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-comment">no slashes, with arguments ARGV and environment from ENVP.  */</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable-3">int</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-def">__execvpe</span> (<span class="cm-keyword">const</span> <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-variable">file</span>, <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-variable">argv</span>[], <span class="cm-variable-3">char</span> <span class="cm-variable-3">*</span><span class="cm-keyword">const</span> <span class="cm-variable">envp</span>[])</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;<span class="cm-keyword">return</span> <span class="cm-variable">__execvpe_common</span> (<span class="cm-variable">file</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">envp</span>, <span class="cm-atom">true</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">weak_alias</span> (<span class="cm-variable">__execvpe</span>, <span class="cm-variable">execvpe</span>)</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">static</span> <span class="cm-variable-3">int</span> <span class="cm-def">__execvpe_common</span>(<span class="cm-keyword">const</span> <span class="cm-variable-3">char*</span> <span class="cm-variable">file</span>, <span class="cm-variable-3">char*</span> <span class="cm-keyword">const</span> <span class="cm-variable">argv</span>[], <span class="cm-variable-3">char*</span> <span class="cm-keyword">const</span> <span class="cm-variable">envp</span>[],</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-variable-3">bool</span> <span class="cm-variable">exec_script</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">{</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-comment">/* Don't search when it contains a slash.  */</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">if</span> (<span class="cm-variable">strchr</span>(<span class="cm-variable">file</span>, <span class="cm-string">'/'</span>) <span class="cm-operator">!=</span> <span class="cm-variable">NULL</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">__execve</span>(<span class="cm-variable">file</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">if</span> (<span class="cm-variable">errno</span> <span class="cm-operator">==</span> <span class="cm-variable">ENOEXEC</span> <span class="cm-operator">&amp;&amp;</span> <span class="cm-variable">exec_script</span>)</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">maybe_script_execute</span>(<span class="cm-variable">file</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-operator">-</span><span class="cm-number">1</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">for</span> (<span class="cm-keyword">const</span> <span class="cm-variable-3">char*</span> <span class="cm-variable">p</span> <span class="cm-operator">=</span> <span class="cm-variable">path</span>; ; <span class="cm-variable">p</span> <span class="cm-operator">=</span> <span class="cm-variable">subp</span>)</span></pre><div style="position: relative;"><div class="CodeMirror-gutter-wrapper" style="left: -11px;"><div class="CodeMirror-gutter-elt" style="left: 0px; width: 10px;"><div class="CodeMirror-foldgutter-open CodeMirror-guttermarker-subtle"></div></div></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  {</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp; &nbsp;<span class="cm-variable">__execve</span>(<span class="cm-variable">buffer</span>, <span class="cm-variable">argv</span>, <span class="cm-variable">envp</span>);</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp;  }</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-tab" role="presentation" cm-text="	">    </span><span class="cm-comment">//......</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp;<span class="cm-keyword">return</span> <span class="cm-operator">-</span><span class="cm-number">1</span>;</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">}</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 760px;"></div><div class="CodeMirror-gutters" style="height: 760px; left: 0px;"><div class="CodeMirror-gutter CodeMirror-foldgutter"></div></div></div></div></pre><p><strong><font style="color:#fe2c24;background-color:#fef2f0;"><span>结论:6个exec内部都使用了execve系统调用(__execve)</span></font></strong></p><p>&nbsp;</p></div></div>
</body>
</html>